package models;
import java.io.Serializable;
import java.util.Observable;
public abstract class Account extends Observable implements Serializable {
private int ID;
private String ownerFirstName;
private String ownerLastName;
private String pin;
protected int total;
public Account(int ID, String ownerFirstName, String ownerLastName, String pin, int total) {
this.ID = ID;
this.ownerFirstName = ownerFirstName;
this.ownerLastName = ownerLastName;
this.pin = pin;
this.total = total;
}
public int getID() {
return ID;
}
public String getPin() {
return pin;
}
public int getTotal() {
return total;
}
public void changeTotal(int total) {
this.total = total;
}
public String getOwnerFirstName() {
return ownerFirstName;
}
public String getOwnerLastName() {
return ownerLastName;
}
public abstract void deposit(int sum);
public abstract void withdraw(int sum);
public String toString() {
return String.format("Account ID: %d Account total: %d Account PIN: %s\n", ID, total, pin);
}
public abstract boolean cannotWithdraw(int sum);
}